package com.bookocean.controller.dto;

import lombok.Data;

import java.time.LocalDateTime;
import java.util.Map;

/**
 * 小说完结投票DTO
 * 
 * @author BookOcean
 * @since 2024-01-01
 */
@Data
public class NovelCompleteVoteDto {
    
    /**
     * 投票ID
     */
    private String voteId;
    
    /**
     * 小说ID
     */
    private Long novelId;
    
    /**
     * 发起者ID
     */
    private Long initiatorId;
    
    /**
     * 投票状态：voting-投票中, completed-已完成, cancelled-已取消, expired-已过期
     */
    private String status;
    
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    
    /**
     * 过期时间
     */
    private LocalDateTime expireTime;
    
    /**
     * 总参与者数量
     */
    private Integer totalParticipants;
    
    /**
     * 需要同意的数量（超过半数）
     */
    private Integer requiredAgrees;
    
    /**
     * 当前同意数量
     */
    private Integer agreeCount;
    
    /**
     * 当前反对数量
     */
    private Integer opposeCount;
    
    /**
     * 投票结果：agree-同意完结, oppose-反对完结, expired-过期
     */
    private String result;
    
    /**
     * 投票详情（用户ID -> 投票选择）
     */
    private Map<Long, String> voteDetails;
    
    /**
     * 是否已投票
     */
    private Boolean hasVoted;
    
    /**
     * 当前用户的投票选择
     */
    private String userVote;
}
